Piggybacking is a bi-directional data transmission technique in the network layer (OSI model). It makes the most of the sent data frames from receiver to emitter, adding the confirmation that the data frame sent by the sender was received successfully (ACK acknowledge). This practically means, that instead of sending an acknowledgement in an individual frame it is piggy-backed on the data frame.
Piggybacking data transfer is a bit different from Sliding Window Protocol used in the OSI model. In the data frame itself, we incorporate one additional field for acknowledgment (called ACK).
Whenever party A wants to send data to party B, it will send the data along with this ACK field. Considering the sliding window here of size 8 bits, if A has received frames up to 5 correctly (from B), and wants to send frames starting from frame 3, it will send ACK6 with the data.
Three rules govern the piggybacking data transfer.
Advantages: Improves the efficiency
Disadvantages: The receiver can jam the service if he/she has nothing to send. This can be solved by enabling a counter (Receiver timeout) when a data frame is received. If the count ends and there is no data frame to send, the receiver will send an ACK control frame. The sender also adds a counter (Emitter timeout), if the counter ends without receiving confirmation, the sender assumes packet loss, and sends the frame again.